Efficient Transmission Of Information To Multiple Nodes Using Cooperative Feedback Requests

ABSTRACT

A system and method to reduce the number of data transmissions between nodes in a network is described. In one embodiment, a system and method for reducing the amount of ACK and NAK traffic in a network is described.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of co-pending U.S. application Ser.No. 13/668,758 filed Nov. 5, 2012 which claims the benefit of U.S.Provisional Application No. 61/556,204 filed Nov. 5, 2011 both of whichare incorporated by reference herein in their entireties.

GOVERNMENT RIGHTS

This work was supported by the United States Department of the Air Forceunder Contract No. FA8721-05-C-0002. The Government has certain rightsin this invention.

FIELD

This application generally relates to transmitting information and moreparticularly to efficient and reliable distribution of content(including, but not limited to video, images, or documents) among users.

BACKGROUND

In conventional communications systems acknowledgments are eitherperformed on an end-to-end basis, such as with TCP, or else on ahop-by-hop basis, as is accomplished with link layer acknowledgements.Such acknowledgements conventionally are in the form of feedback aboutspecific packets or groups of specific packets.

Network coding enables feedback to consist only of the number of packetsreceived or missing, as the identity of specific individual packets isno longer needed with coding.

The problem of reliable multicast can be difficult, particularly in amobile ad hoc network (MANET). If each node must acknowledge everypacket it receives, and the number of nodes in a network is large, orthe number of simultaneous multicast messages transmitted is sizable, aso-called “acknowledgment explosion” (or “ACK explosion”) can result.

It would be desirable to provide a system and technique for efficienttransmission of information to multiple nodes in a network. Inparticular, it would also be desirable to provide a system and techniquefor efficient and reliable distribution of video or other content tousers.

SUMMARY

The systems and techniques described herein relate to the concept ofefficiently transmitting data in a network. The systems and techniquesdescribed herein may specifically be used to reduce the amount oftraffic in a network while still enabling timely feedback and messagedelivery in the network. The systems and techniques described hereinfind application in a number of different types of multicast systems.

In accordance with one aspect of the concepts described herein, a systemand method to reduce the number of data transmissions between nodes in anetwork, while still ensuring message delivery, is described. Asdescribed herein, the nodes may have a priori knowledge of theprobability that a packet transmitted from a specified node can becorrectly received by any other specified nodes. Such a priori knowledgecan come from location information that the nodes receive about eachother, as well as from a channel model.

In accordance with a further aspect of the concepts described herein, asystem and method for reducing the amount of acknowledgement (ACK) andnegative acknowledgement (NAK) traffic in a network is described.

In accordance with a further aspect of the concepts described herein, asystem and method for conserving power in mobile and other devicesconnectable to a network is described.

In accordance with a still further aspect of the concepts describedherein, a system and method for using location information in nodescoupled to a network to determine if the nodes have sufficient knowledgeto perform cooperative feedback within the network is described. In oneembodiment, cell phone GPS systems are used to provide locationinformation of a network node and the location in formation is used todetermine whether a node can send a cooperative feedback request.

In accordance with a still further aspect of the concepts describedherein, a system and method for forming and delivering new types ofmessages for transmitting feedback efficiently is described.

In accordance with a still further aspect of the concepts describedherein, a system and method for utilizing probabilistic knowledge on thestate of a system as a means to decrease the amount of feedback neededin the system is described.

It should be appreciated that the concepts, systems and techniquesdescribed herein apply equally well to single hop and multi-hop systems.

The concepts, systems and techniques described herein provide a numberof advantages including, but not limited to: (1) more efficient use ofnetwork bandwidth; (2) more efficient use of time; and (3) moreefficient use of power at network nodes (e.g., longer battery life innodes which operate on batteries such as mobile phones, tablets, orother devices). Thus, the concepts, systems and techniques describedherein result in a generally more efficient use of multiple resources(including, but not limited to resources such as bandwidth, time, power)during transmission of information from a source node or source nodes toone or more other nodes.

In accordance with the concepts, systems and techniques describedherein, a system and method which greatly reduces the amount of trafficused for ACKSs and NAKs, while still enabling timely feedback isdescribed.

In some embodiments described herein, a wireless network, in which therewill be packet losses is considered. Nodes in the network can “overhear”and store information that they receive with a sufficiently high signalto noise plus interference ratio. When intermediate “relay nodes” areused between a source and a destination, it is assumed that randomlinear network coding is used by such intermediate relay nodes tocombine packets they receive from other nodes, before repromulgating thereceived information. When such a random linear combination istransmitted, all nodes within reception range of the relay node canthereby receive an implicit acknowledgment as to how many degrees offreedom that relay node has already received. In addition, the number ofdegrees of freedom received by other nodes, or from blocks from otherflows of which the relay node has knowledge, can also potentially bepiggybacked on to the new random linear combination. Similarly, newtraffic originating at any node can potentially piggyback informationpertaining to the degrees of freedom received from other blocks fromother flows.

Thus, a node's view of the state of the system could in many cases bepiggybacked on to periodic messages (e.g. periodic control messages),without significant additional bandwidth cost. Such periodic messagescould be used by the nodes that hear them to update their own views ofthe state of the system. The state of the system is defined as thenumber of degrees of freedom each node has received from each block oforiginal information packets from each flow. Part of a node's view ofthe state of the system in some cases could be given probabilistically,based upon a channel model, locations of other nodes, the transmissionsheard by the node, and knowledge of the packets transmitted by the node.

When a non-source node's knowledge indicates that all destination nodeshave, with high probability, received all the degrees of freedom from ablock, then that node can send out a cooperative feedback request (alsosometimes referred to herein as a “auction message”) in order to confirmthat transmissions of additional coded packets derived from that blockcan cease. That is, the non-source node can send an ACK or other nodes.Such an auction message could, for example, be appended to some othermessage (e.g. a periodic control message) the node would be sendinganyway.

When a node's knowledge indicates, with high probability, that somenodes have not received all coded packets from a source, then that nodecan send out a cooperative feedback request corresponding to a negativeacknowledgement or NAK. In one embodiment, another node responds to theauction message with a NAK only if at least one of two criteria holds:first, the node's view of the state of the system differs from that inthe auction message, which claims a block is completely received by alldestinations; or second, if the node has knowledge, (i.e. the node hasinformation stored therein or has access to information or can computeinformation) that a distant node may have been unable to hear theauction message and that the distant node may not have all the degreesof freedom of the block which the auction message advertises as beingcompletely received. In this latter case, the NAK can potentially serveto inform the distant node of the auction message, which can thenrespond to this NAK. The node's knowledge may, for example, be based atleast in part upon one or more of node location information, aprobabilistic channel model and/or piggy backed information overheard.

Non-source nodes that receive a NAK can respond by transmitting randomlinear combinations from the needed block of packets. A node thatresponds to a NAK by transmitting more such coded packets is notnecessarily the node that sent the auction message, but rather can beselected based upon criteria including its proximity to nodes missingdegrees of freedom. Accordingly, the node that transmits the auctionmessage does not necessarily even have to receive the NAK, as long asanother suitably positioned node does. Thus, not all NAKs need to besuccessfully received by all nodes, including the source node.

For example, on a collision channel with capture, survival through acollision of only one NAK will suffice to enable a receiving node toknow that more degrees of freedom are required before transmission ofthe block can cease. The number of random linear combinations thatshould be transmitted by a node can be determined by the probabilisticchannel model, the node locations, and the number of degrees of freedomstill missing at destination nodes.

In summary, the amount of traffic dedicated to feedback can be reducedthrough several mechanisms. First, a relay node that transmits codedcombinations of packets can also thereby inform other nodes of thedegrees of freedom it has already received. Secondly, acknowledgementsfor numbers degrees of freedom, rather than for individual packets, canbe piggybacked onto several types of messages, with little, if any,overhead in many cases; these message types include periodic controlmessages, new blocks of information originating from a node, and codedrepromulgated information being “relayed” from a node. Finally, when anynode's knowledge accumulated from these various message types, as wellas from the channel model and knowledge of the locations of other nodes,indicates that all destination nodes have with high probability receivedall degrees of freedom for a block of packets, that node can send one ormore cooperative feedback request messages stating this premise.

Only if other nodes disagree with the premise, do they send NAKs. Sincea cooperative feedback request is issued only after a node has knowledgethat indicates all other nodes have all degrees of freedom for a blockwith high probability, statistically there will be few NAKs transmittedin response to such auction messages. Furthermore, a NAK need not besent all the way back to the node that originated transmissions of theblock; it only needs to reach another node that has all of the degreesof freedom from that block.

In addition to the new types of messages for transmitting feedbackefficiently, also described is the use of probabilistic knowledge on thestate of the system as a means to decrease the amount of feedback neededwithin a network.

In accordance with a still further aspect of the concepts describedherein, in systems in which nodes have knowledge of each others'locations (e.g. such as in applications utilized by smart phones), thistype of knowledge is leveraged in an efficient feedback protocol asdescribed herein.

In accordance with a still further aspect of the concepts describedherein a system and method to reduce the number of data transmissionsbetween nodes in a network comprises a plurality of nodes, each for thenodes capable of sending an ACK or a NAK for at least one other node inthe network.

In accordance with a still further aspect of the concepts describedherein a system and method for reducing the amount of ACK and NAKtraffic in a network comprises a plurality of nodes, each for the nodescapable of sending an ACK or a NAK for at least one other node in thenetwork and wherein each of the nodes broadcasts its ACK or NAK.

In accordance with a still further aspect of the concepts describedherein is a system and method for conserving power in mobile and otherdevices connectable to a network wherein each of the mobile devicesconserves battery power as a result of: (a) transmitting fewer ACKand/or NAK messages; (b) sending additional coded packets over pathsthat require less power (such as shorter distances); (c) sending fewertotal coded packets.

In accordance with a still further aspect of the concepts describedherein, a system and method for using location information in nodes todetermine with high probability if nodes have sufficient numbers ofcoded packets. This information is used to determine when to generatecooperative feedback requests, as well as when/whether to generatecooperative ACKs or NAKs. In one application at least one node in thenetwork corresponds to a mobile phone containing a GPS system which isused to provide the location information.

In accordance with a still further aspect of the concepts describedherein, a system and method utilizing probabilistic knowledge on thestate of the system as a means to decrease the amount of feedback neededin a system comprises a network having a plurality of nodes wherein eachof the nodes in the network knows the location of at least one othernode and each node may have a statistical model for channel losses toother nodes and wherein each of the nodes also knows what it transmittedand what it received. In one embodiment, the location of other nodes,the statistical model for channel losses to all other nodes, the nodetransmission and reception information are used to reduce the number ofmessages which are transmitted in the network, including but not limitedto ACK messages and NAK messages. In one embodiment, network coding inconjunction with probabilistic reception models is used to reduce thenumber of repetitive transmissions to different nodes, the number ofre-transmitted messages and the number of feedback messages.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing features of this invention, as well as the inventionitself, may be more fully understood from the following description ofthe drawings in which:

FIGS. 1-3 are a series of block diagrams illustrating a network whichutilizes one or more cooperative feedback requests to reduce the amountof traffic in a network;

FIG. 4 is a flow diagram illustrating a method for reducing the amountof traffic in a network utilizing cooperative feedback requests;

FIG. 5 is a block diagrams illustrating a prior art network experiencingan ACK explosion;

FIGS. 6 and 6A are a series of block diagrams illustrating a networkwhich avoids an ACK explosion by using cooperative feedback requests;

FIG. 7 is a plot of message loss vs. distance from the transmitting nodefor a total offered information traffic of 0.3;

FIG. 8 is a plot of percent of message loss vs. distance fromtransmitter at total offered information traffic of 0.3;

FIG. 9 is a plot of feedback to the transmitter at 0 for a twenty one(21) node network; and

FIG. 10 is a plot of feedback to the transmitter in the middle for atwenty one (21) node network.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

It should be understood that the concepts, systems and techniquesdescribed herein are useful in any type of network and may beparticularly useful in any network in which efficiency is important(efficiency being important, for example, in networks having limitedbandwidth). Also, it should be appreciated that the concepts, systemsand techniques described herein apply equally well to single hop andmulti-hop systems.

Referring now to FIGS. 1-3, a network 10 includes a plurality ofstations or nodes 12 a-12 e generally denoted 12. Nodes 12 can becoupled as shown through channels or links 13 a-13 h generally denoted13. All or portions of network 10 may comprise WiFi, cellular, satellitetechnology.

In operation, source node 12 a transmits information to one or moreother nodes 12 b-12 i in network 10, wherein the information is in theform of a plurality of coded packets. If each of the nodes is adestination node (i.e. a node to which the source node intended to sendthe information), then transmission of coded packets continues untileach destination node receives a number of coded packets sufficient todecode the message.

In some cases the information transmitted by the source node 12 a may beintended only for a single node and in such a case, it is not necessarythat all nodes 12 receive a number of coded packets sufficient to decodethe message. Rather it is only necessary that the single destinationnode receive a number of coded packets sufficient to decode the messagefrom the source node 12 a. Network 10 utilizes network coding inconjunction with probabilistic reception models to determine when tocease transmitting coded packets, when to request feedback, when to sendfeedback messages, and when to send additional coded packets in responseto feedback. By utilizing network coding in conjunction withprobabilistic reception models, the system is able to reduce the numberof data transmissions and feedback requests to different nodes, as wellas the number of feedback messages. These reductions result in adecrease in the amount of traffic in the network, and consequentlyresults in an increase it the amount of throughput and a decrease indelivery time in the network.

Each of the nodes 12 in network 10 “knows” (i.e. has information storedtherein or has access to information or can compute information) thelocation of some or all other nodes and each node includes a statisticalmodel for channel losses to all other nodes (any of the well-knownmodels or even models yet to be developed may be used). Each of thenodes 12 also knows what it transmitted and what it received. Utilizingsome or all of the aforementioned information, the number of messageswhich are transmitted in the network 10, including but not limited toacknowledgement messages (ACK) messages or more simple ACKs and negativeacknowledgement messages (NAK) messages or more simply NAKs may bereduced compared with the number of messages sent in a conventionalnetwork.

First, nodes transmit coded packets. Then as in FIG. 2, a cooperativefeedback request (or an “auction message”) is sent out by a node (inthis example node 12 e) that has determined that with high probabilityall nodes have received a sufficient number of coded packets to decodethe source node's (in this example node 12 a) message.

One example mode of operation is shown in FIG. 1. (We note that othermodes of operation could use NAKs instead of ACKs.) Node 12 a acts as asource node and transmits a coded packet 14, or a sufficient number ofcoded packets to decode message 14′, to each of the nodes in the network(i.e. nodes 12 a-12 i in the exemplary embodiment of FIG. 1). When nodes12 d receives coded packet 14, or a sufficient number of coded packetsto decode message 14′, node 12 d utilizes a channel model containedtherein to predict the probability that nodes 12 e-12 i receive codedpacket 14 or a sufficient number of coded packets to decode message 14′.If node 12 d determines, based upon the channel model, that coded packet14 or a sufficient number of coded packets to decode message 14′; wasalso received at nodes 12 e-12 i, then node 12 d sends an ACK messagefor itself as well as for nodes 12 e-12 i. Thus, nodes 12 e-12 i do notsend separate ACK messages. This approach reduces the number of ACKmessages being transmitted in the network and thus the amount of networktraffic is reduced.

Similarly, if node 12 d (or any other node) determines, based upon thechannel model, that coded packet 14 or a sufficient number of codedpackets to decode message 14′ was not received at one or all of nodes 12e-12 i, then node 12 d may send a NAK message for nodes 12 e-12 i. Thus,nodes 12 e-12 i do not send separate NAK messages. This approach reducesthe number of NAK messages being transmitted in the network and thus theamount of network traffic is reduced. It should be appreciated that node12 d may or may not have successfully received packet 14 or a sufficientnumber of coded packets to decode message 14′. That is, even if node 12d successfully receives packet 14 or a sufficient number of codedpackets to decode message 14′, it may be possible that node 12 dreceived packet 14 or a sufficient number of coded packets to decodemessage 14′ in such conditions that based upon channel models or otherinformation either stored in the node or which the node can access, node12 d is able to conclude that nodes 12 e-12 i could not have or did notlikely have successfully received the message 14′. In this case node 12d would send an ACK for itself and would send a NAK for nodes 12 d-12 i.In many cases, only the NAK for nodes 12 d-12 i would be of use to othernodes; in these situations node 12 d may not need to send an ACK foritself.

It should be understood that there may be a number of means by whichnodes learn how many coded packets other nodes are missing. For example,re-encoded packets transmitted from a relay node implicitly can informwhat that node needs. Also, ACK or NAKmessages can be piggybacked ontoperiodic location updates or other control messages. Also, ACK or NAKmessages can be piggybacked onto new (or re-encoded “relayed”) traffictransmitted from a node. Also, some or all nodes may have aprobabilistic channel model for how many coded packets other nodes havereceived, for each message transmitted by any node. The inputs to thismodel are updated with reception of each message including, but notlimited to each of the above-noted message types.

As illustrated in FIG. 2, when a particular node which is not the sourcenode (e.g. node 12 e) has enough information (or knowledge) storedtherein and the information indicates with a desired level ofprobability that all other nodes (e.g. nodes 12 a-12 d and nodes 12 f-12i) with a need to decode a message have sufficient information to decodethe message, then that particular node can send a cooperative feedbackrequest (also sometimes referred to herein as an “auction message”).Those of ordinary skill in the art will understand the factors toconsider in determining a desired level of probability for anyparticular application. Such a determination may include bothanalytically determined factors as well as empirically determinedfactors. In general, a trade-off must be made between a degree ofprobability and a number of transmissions.

As shown in FIG. 2, node 12 e broadcasts the cooperative feedbackrequest 18 (shown in the exemplary embodiment of FIG. 2 as an auctionmessage 18) to the network. By sending cooperative feedback request 18,node 12 e indicates that the information it has stored therein (or whichis computed therein or which is otherwise available to the node 12 e)indicates that node 12 e believes with a desired degree of probabilitythat all other nodes have received enough coded packets from source 12 aand other relay nodes in 12 to decode the message from source 12 a.

It should be appreciated that in the exemplary embodiment of FIG. 2,node 12 e sends the cooperative feedback request to nodes 12 b-12 d aswell as to nodes 12 f-12 i (i.e. node 12 e broadcasts auction message 18to network 10). In other embodiments, it may be desirable for node 12 eto send the cooperative feedback 18 request to less than all of thenodes in the network.

Although in the exemplary embodiment of FIG. 2, node 12 e is the nodewhich transmits the cooperative feedback request 18, it should beappreciated that any node in the network with sufficient knowledge maytransmit the cooperative feedback request to the other nodes includingany and all destination nodes. This approach relieves from the sourcenode (illustrated as node 12 a in the exemplary embodiment of FIG. 2) ofthe burden of providing all feedback and all feedback requests. Thus,the node which provides the cooperative feedback request can be any nodein the network with sufficient knowledge that all other nodes at whichthe message should be decoded have enough information to decode themessage (e.g. that each destination node has enough information todecode the message) with high probability.

Thus, in network 10, a node 12 other than source node 12 a can make thedetermination as to whether it is necessary to transit or re-transmitany additional packets in the network.

It should also be appreciated that in the case where source node 12 abroadcasts a message to the network 10, each of nodes 12 b-12 icorresponds to a destination node for that message. Thus, in this casethe node or nodes which transmit the cooperative feedback requests canbe any node in the network with sufficient knowledge that all othernodes with high probability have sufficient information to decode themessage (i.e. that each destination node has enough information todecode the message).

It should also be appreciated that even if node 12 e sends cooperativefeedback request 18, if node 12 g receives packet 14 and concludes thatbased upon channel models or other information, either or both of nodes12 h, 12 i could not have successfully received the packet, then node 12g may send a NAK message for nodes 12 h and/or 12 i.

Referring now to FIG. 3, source node 12 a sends a packet (not shown inFIG. 3). The packet is successfully received at nodes 12 b-12 g. Node 12h in network 10 sends (e.g. broadcasts) a NAK message 20 for itself andanother node (i.e. node 12 i). Node 12 g receives the NAK from node 12h. Since node 12 g knows that it successfully received packet, inresponse to receiving NAK message 22, node 12 g performs a cooperativere-transmit operation in which node 12 g transmits new re-encodedpackets 22. In the exemplary embodiment of FIG. 3, node 12 g broadcaststhe re-encoded packets 22. Nodes 12 h , 12 i use re-encoded packets 22to decode a message.

It should be appreciated that in conventional systems, if theacknowledgements were end-to-end, as in TCP, source node 12 a wouldre-send the packet(s) not received by nodes 12 h, 12 i.

It should also be appreciated that a node would send a NAK for anothernode either if that node itself did not receive enough coded packets orif the information stored or computed or otherwise existing in the node(or the node's knowledge) indicates that another, perhaps moredisadvantaged (e.g. a node more distant from a source), node did notsuccessfully receive enough coded packets. Thus, stated more simply, anode 12 sends a NAK if the node itself did not receive enough codedpackets or if the node has knowledge with a desired degree ofprobability that another node did not receive enough coded packets.

It should be appreciated that the exemplary embodiments described abovein conjunction with FIGS. 1-3 may represent a wireless network havingpacket losses and in which nodes in the network can overhear and storeinformation that they receive and wherein random linear network codingis used by intermediate relay nodes to combine packets they receive fromother nodes, before repromulgating the received information. In such asystem, a method of transmitting information from a source node to oneor more destination nodes comprises transmitting a random linearcombination of coded packets. All nodes within reception range of relaynodes may receive implicit acknowledgments as to how many degrees offreedom the relay nodes have already received. Based upon the degrees offreedom, the transmission of new linear combinations of coded packetsmay continue, wherein the number of degrees of freedom received by othernodes, or from blocks from other flows of which the relay node hasknowledge are piggybacked on the new random linear combinations.

In one embodiment, new traffic originating at any node piggybacksinformation pertaining to the degrees of freedom received from otherblocks from other flows. It should be appreciated that the nodes in thenetwork have a priori knowledge of the probability that a packettransmitted from a specified node can be correctly received by anotherspecified node. Such a priori knowledge can come from locationinformation that the nodes receive about each other, as well as from achannel model.

FIG. 4 is a flow diagram showing the processing performed by or onbehalf of a network node which may, for example, be provided as part ofa network such as one of the networks shown in FIGS. 1-3, 6 and 6A. Inparticular, the flow diagram illustrates a method of transmittinginformation from a source node to one or more other nodes in a network.The network is comprised of a plurality of nodes and the informationbeing transmitted is in the form of a plurality of coded packets.

The rectangular elements (e.g. block 30 in FIG. 4) in the flow diagramare herein denoted “processing blocks” and represent steps orinstructions or groups of instructions. Some of the processing blockscan represent an empirical procedure or a database while others canrepresent computer software instructions or groups of instructions. Someof the steps described in the flow diagram may be implemented viacomputer software while others may be implemented in a different manner.

Alternatively, some of the processing blocks can represent stepsperformed by functionally equivalent circuits such as a digital signalprocessor circuit or an application specific integrated circuit (ASIC).The flow diagram does not depict the syntax of any particularprogramming language. Rather, the flow diagram illustrates thefunctional information one of ordinary skill in the art requires toperform the steps or to fabricate circuits or to generate computersoftware to perform the processing required of the particular apparatus.It should be noted that where computer software can be used, manyroutine program elements, such as initialization of loops and variablesand the use of temporary variables are not shown. It will be appreciatedby those of ordinary skill in the art that unless otherwise indicatedherein, the particular sequence of steps described is illustrative onlyand can be varied without departing from the spirit of the concepts,systems and techniques described herein.

Turning now to Fig, 4, processing begins in processing block 30 in whicha source node transmits a message in the form of coded packets to one ormore other nodes in a network as is generally known. One or more of theother nodes correspond to a destination node (i.e. a node which thesource node intends to receive the message). Thus, in the case of abroadcast message all other nodes in the network correspond todestination nodes.

Processing then proceeds to processing block 32 in which the one or moreother nodes receive a number of coded packets. It should be appreciatedthat the destination node(s) should receive a number of coded packetssufficient to decode the message.

Processing proceeds to block 34, whereby nodes transmit explict andimplicit acknowledgements.

Processing then proceeds to processing block 36 in which a nodedetermines whether it can send a cooperative feedback request (a/k/a anauction message) for at least one other node in the network. Inpreferred embodiments, each node in the network determines whether itcan send a cooperative feedback request.

As shown in processing block 36, the manner in which the node determineswhether it can send a cooperative feedback request includes the nodeprocessing or otherwise using a plurality of different types ofinformation which the node has stored therein or to which the nodeotherwise has access. To determine whether a node can send a cooperativefeedback request, it is necessary for the node to determine whetheranother node has or has not received the coded packets transmitted bythe source node. The node can accomplish this, for example, by using:(a) information which has been overheard or directly transmitted fromother nodes; (b) node location information; (c) probabilistic channelmodel knowledge; (d) a combination of any (including all) of the abovetypes of information (e.g. a combination of information overheard fromother nodes and/or node location information and/or information from aprobability model for a channel).

As shown in processing block 37, once a node determines that it can senda cooperative feedback request (i.e. once a node determines that it cansend an auction message for one or more other nodes), then it does so.In a preferred embodiment, the node sends the cooperative feedbackrequest to each other node in the network (i.e. the node broadcasts thecooperative feedback request). Node processing to determine whether tosend a cooperative feedback request then ends. As discussed above inconjunction with FIGS. 1-3, once a cooperative feedback request is sent,nodes receiving the cooperative feedback request may then performadditional processing (e.g. transmission of new coded packets orre-transmission of coded packets).

Each node that receives the cooperative feedback request will determinethrough the explicit and implicit knowledge it is accumulated aboutitself and its neighbors, in block 38, if it should respond to thatfeedback request. As shown in block 40, each such responding nodetransmits a NAK.

It should be appreciated that an ACK or a NAK is only sent when one ormore nodes have sufficient knowledge to determine if other nodes havereceived a sufficient number of coded packets to decode the message Inone exemplary embodiment, in response to a non-source node receiving aNAK, the node transmits coded packets, as in block 42 to other nodes (inaccordance with the concepts, systems and techniques described herein,the retransmitting node need not be the source node nor the last hopnode that originally transmitted coded packets to the nodes in need ofmore. In one exemplary embodiment, in response to a non-source nodereceiving a NAK, the non-source node transmits newly coded packets toother nodes.

In one embodiment, in a network comprising a plurality of nodes, adecision is made as to which node should transmit newly coded packets.In one embodiment, this decision is made using node locations todetermine which node should transmit newly coded packets.

Referring now to FIG. 5 a prior art system includes a source node SNwhich broadcasts a message BM to a plurality of destination nodes (DN).The nodes shown in FIG. 5 may, for example, correspond to people withsmart phones. Each destination node sends an acknowledgement packet(ACK) to source SN which results in source node SN experiencing an ACKexplosion.

FIGS. 6 and 6A are a series of block diagrams illustrating a networkwhich avoids an ACK explosion by using cooperative feedback requests. Asshown in FIG. 6, source node SN again broadcasts a message BM to aplurality of destination nodes (DN).

As shown in FIG. 6A, however, using the techniques described herein,some nodes ACK (or NAK) for other nodes. Thus, not every node needs tosend an appropriate one of an ACK or NAK. Consequently, the number ofACK/NAK packets transmitted to source node SN is greatly reducedcompared with the system of FIG. 5.

In a network having a source node and a plurality of destination nodes(such as the exemplary network such in FIGS. 6 and 6A), a method fortransmitting and acknowledging a broadcast message includes for Minformation packets, generating linear coded packets and transmittingfrom the source node, the linear coded packets to the destination nodes.Upon reception of the N_(M) linear coded packets at one or more of thedestination nodes, determining whether one of the destination nodes cansend one of an ACK or a NAK for at least one other destination node.

Determining whether one of the destination nodes can send one of an ACKor a NAK for at least one other destination node can be accomplished asdiscussed above (e.g. using information which has been overheard fromother nodes; implicitly transmitted by other nodes, piggybacked by othernodes, using node location information; and using probabilistic channelmodel knowledge in each of the nodes including using a probabilitychannel model; and/or a combination of the above and other techniques).

Next explored is the spatial dependence of the probability of messageloss. The capture effect makes it more likely that nodes close to atransmitter will receive a message than nodes farther away. In order toillustrate this spatial dependence, a 200 node linear network isconsidered.

FIG. 7 shows the probability that a message transmitted by the left mostnode will be lost by each of the receiving nodes for several values oftotal offered information traffic, when successive coded packettransmission probability Pt=0.07. As shown in FIG. 12, there is asaturation point at node 100 beyond which all future nodes are impactedby the same amount of interference. Loss of coded packets occurs whenanother node closer to the receiver transmits in the same time slot asanother node sending a message, so receivers farther away from thetransmitter will be subject to more interference, and therefore willexperience a higher likelihood of message loss. The saturation occursdue to edge effects, because the nodes in the saturated region aresubject to potential interference from every other node in the network.

The spatial dependence of probability of message loss is seen to resultfrom the combination of capture and edge effects. A similar profile isseen if mean delay is plotted as a function of distance from thetransmitting node. More traffic leads to a higher mean delay, asexpected. Mean delay increases rapidly with distance from thetransmitting node until the plateau point is reached at which point themean delay stays constant at longer distances due to edge effects.

Next considered in conjunction with FIG. 8 are packet receptions fromtransmissions made by the middle node.

FIG. 8 shows the probability of losing a message that is sent from thecentral transmitter. FIG. 8 shows the expected mirrored loss as thedistance from the transmitting node is increased in either direction.

Next considered is the concept of utilizing the spatial dependence ofpacket loss that is induced by the combination of the capture effect andedge effects. Since in the model used here, with capture and collisionsbeing the only source of packet loss, it is seen from FIG. 12 that ifany of the nodes between nodes 100 and 200 received the message, thenthey all received it. In this case, the reception by the plateau pointnode, which is node 100 for example when the transmitting node is theleft most node, deterministically implies that the nodes on the otherside of the plateau point have received the packet with certainty.Therefore, the following feedback protocol is implemented when codingand random spreading of coded packets in time is used: when the receiverat the designated plateau point for each transmitter receives themessage (that is any k coded packets), it sends an acknowledgement tothe transmitting node; the plateau point identifies the closestreceiving node that will be impacted by every other potentialinterfering node; when this node has received the message, it can beassumed that every other node has as well. By enabling this feedback,one is able to reduce the overall traffic in the system and thereforereduce collisions and loss, as well as delay, of future messages.

Next described is a technique to determine the plateau point node for atransmitting node. For example, if a transmitting node located at t<N/2nodes from the left most node, where N is the total number of nodes in alinear network, the two potential plateau points would be located attransmitters P1 and P2:

P1=(N−t)/2)+t   Equation (4)

P2=t/2   Equation (5)

In this case N is the number of nodes in the system and P is the plateaupoint index. Note: when the middle node is the transmitter there are twopivots, defined by each of the equations above, that both mustacknowledge message receipt for feedback to be successful.

FIG. 9 shows the resulting decrease in message loss from this protocolfor N=21; k=3=number of original source packets in a message;n=6=maximum number of coded packets that will be transmitted for asingle message, and Pt=0.07, for an offered traffic of 0.3. The uppercurve represents no feedback when all n packets are transmitted, whereasthe lower curve shows the performance with the feedback protocol.

The difference between the two curves shows the significant reduction inloss provided by the feedback protocol. The savings from the feedback isgreatest where the loss is greatest, which is beyond the plateau point.Here, the message loss is reduced by more than a factor of 2.

Again, for the half of the nodes beyond the plateau point, the messageloss is reduced by a factor greater than 2. The absolute value of thedecrease in probability of message loss is only a few percent here,whereas it was 15% when the edge node transmitted, because the absolutevalue of the original message loss probability is smaller when themiddle node transmits. Hence, when averaging over all transmitting andreceiving nodes, the absolute value of the probability of message lossdecreases a few percent when the feedback protocol is used. The savingsfrom using the feedback protocol are greatest for the receiving nodesmost distant from the transmitting node.

FIG. 10 shows the impact of feedback on message loss across the linearnetwork for messages transmitted from the center node, when the samesystem parameters are used. Feedback is again seen to significantlydecrease message loss by a factor greater than 2 relative to losswithout feedback, particularly for the half the nodes in the networkthat are most distant from the center node. We note that similar resultsfor both the edge and center nodes transmitting are obtained for a 200node linear network.

It should be noted that while some communication systems, such as Link16, exhibit nearly perfect capture, others may have an imperfectcapture. More generally, if there is partial capture, then the plateaupoints move in towards the transmitter, while the probability of messageloss increases at these plateau points. In the limit of no capture, theprobability of message loss is greatest, and the nodes adjacent to thetransmitter experience the same loss as all the other nodes in thenetwork, and feedback from them would indicate the reception status ofall nodes in a pure collision channel.

Having described preferred embodiments which serve to illustrate variousconcepts, structures and techniques which are the subject of thispatent, it will now become apparent to those of ordinary skill in theart that other embodiments incorporating these concepts, structures andtechniques may be used. Accordingly, it is submitted that that scope ofthe patent should not be limited to the described embodiments but rathershould be limited only by the spirit and scope of the following claims.

What is claimed is:
 1. In a network comprising a plurality of nodes, amethod of transmitting information from a source node to one or moreother nodes in the network, the one or more other nodes comprising atleast one destination node, wherein the information is in the form of aplurality of coded packets, the method comprising: transmitting codedpackets from the source node to the one or more other nodes in thenetwork; receiving a number of coded packets sufficient to decode theinformation at one or more of the other nodes; at a first one of theother nodes, determining with a desired degree of probability if each ofthe destination nodes has received a sufficient number of coded packetsto decode the information based upon one or more of a probabilisticchannel model, locations of the destination nodes, transmissions heardby the first one of the other nodes or knowledge of coded packetstransmitted by the first one of the other nodes to nodes other than thefirst one of the other nodes; and sending a cooperative feedback requestfrom the first one of the other nodes to one or more of the nodes otherthan the first one of the other nodes based upon the determining at thefirst one of other nodes.
 2. The method of claim 1 further comprising:in response to one or more of the nodes other than the first one of theother nodes receiving the cooperative feedback request from the firstone of the other nodes and determining with the desired degree ofprobability that itself and/or some other node did not receive asufficient number of coded packets, sending, from a second one of theother nodes to one or more of the other nodes in the network, a negativeacknowledgement (NAK) on behalf of the node or nodes believed to havenot received a sufficient number of coded packets.
 3. The method ofclaim 2 wherein the determining with the desired degree of probabilitythat itself and/or some other node did not receive a sufficient numberof coded packets is based upon explicit and implicit knowledge withinthe node sending the NAK.
 4. The method of claim 2 further comprising:in response to one or more of the other nodes receiving the NAK,retransmitting the coded packets from a first one of the one or moreother nodes receiving the NAK to one or more of the nodes other than thefirst one of the other nodes; or transmitting newly coded packets fromthe first one of the one or more other nodes receiving the NAK to one ormore of the nodes other than the first one of the other nodes.
 5. Themethod of claim 4 wherein the first one of the one or more other nodesreceiving the NAK is not the source node and is not a last hop node thattransmitted the coded packets to the node or nodes believed to have notreceived a sufficient number of coded packets.
 6. The method of claim 1further comprising: in response to one or more of the nodes other thanthe first one of the other nodes receiving the cooperative feedbackrequest from the first one of the other nodes and determining with thedesired degree of probability that itself and/or some other node hasreceived a sufficient number of coded packets, sending, from a secondone of the other nodes to one or more of the other nodes in the network,an acknowledgement message (ACK) on behalf of the node or nodes believedto have received the sufficient number of coded packets, whereinsending, from the second one of the other nodes to one or more of theother nodes in the network, an acknowledgement message (ACK) on behalfof the node or nodes believed to have received the sufficient number ofcoded packets, comprises: determining, in the second one of the othernodes, whether to send the ACK based upon at least location of the othernodes; and sending, from the second one of the other nodes to one ormore of the other nodes in the network, the ACK on behalf of the node ornodes believed to have not received a sufficient number of coded packetsbased upon the determining in the second one of the other nodes.
 7. Themethod of claim 2 wherein sending, from the second one of the othernodes to one or more of the other nodes in the network, a negativeacknowledgement (NAK) on behalf of the node or nodes believed to havenot received a sufficient number of coded packets, comprises:determining, in the second one of the other nodes, whether to send theNAK based upon at least location of the other nodes; and sending, fromthe second one of the other nodes to one or more of the other nodes inthe network, the NAK on behalf of the node or nodes believed to have notreceived a sufficient number of coded packets based upon the determiningin the second one of the other nodes.
 8. The method of claim 7 whereindetermining, in the second one of the other nodes, whether to send theNAK based upon at least location of nodes, further comprises:determining which node of the other nodes should transmit newly codedpackets or re-transmit coded packets.
 9. The method of claim 8 whereindetermining which node of the other nodes should transmit newly codedpackets comprises using node locations to determine which node of theother nodes should transmit the newly coded packets.
 10. A method ofdetermining when to send a cooperative feedback request in a networkcomprising a plurality of nodes, the plurality of nodes including asource node and one or more other nodes, the one or more other nodesincluding at least one destination node, the source node transmitting amessage in a form of a plurality of coded packets to the one or moreother nodes in the network, the method comprising: at a first one of theother nodes, determining with a desired degree of probability if each ofthe destination nodes has received a sufficient number of coded packetsto decode the message using information which has been overheard fromother nodes; using information which has been overheard from other nodesin combination with node location information; and using probabilisticchannel knowledge including using a probability channel model; anddetermining when to send a cooperative feedback request from the firstone of the other nodes to one or more of the nodes other than the firstone of the other nodes based upon the determining at the first one ofthe other nodes.
 11. The method of claim 10 further comprising usingpiggybacked ACKs or NAKs.
 12. In a network having a source node and oneor more other nodes, the one or more other nodes including a pluralityof destination nodes, a method for acknowledging a broadcast message,the method comprising: for a broadcast message including M informationpackets, generating a corresponding number of linear coded packets;transmitting from the source node, the linear coded packets ; and uponreception of the linear coded packets at one or more of the destinationnodes, determining with a desired degree of probability if one of thedestination nodes should send one of an ACK or a NAK for at least oneother destination node based upon one or more of information which hasbeen overheard from other nodes, information which has been overheardfrom other nodes in combination with node location information, andprobabilistic channel knowledge in each of the nodes.
 13. The method ofclaim 12 further comprising, determining in a first one of thedestination nodes how many degrees of freedom are needed to decode thebroadcast message.
 14. The method of claim 13 further comprising:transmitting an acknowledgment packet from the first one of thedestination nodes to one or more other nodes in the network to conveyremaining number of degrees of freedom required at the first one of thedestination nodes or at one or more destination nodes other than thefirst one of the destination nodes to decode all M information packets.15. The method of claim 14 further comprising determining a number oflinear coded packets needed at the first one of the destination nodes orat one or more destination nodes other than the first one of thedestinations nodes based upon one or more channel characteristics andinformation in the acknowledgement packet.
 16. The method of claim 13further comprising: transmitting a NAK packet from the first one of thedestination nodes to other nodes in the network to indicate that atleast one destination node other than the first one of the destinationnodes did not receive a sufficient number of linear coded packets todecode the broadcast message.